package com.ruoyi.data.service.impl;

import com.ruoyi.data.domain.TdataHtEq;
import com.ruoyi.data.mapper.TdataHtEqMapper;
import com.ruoyi.data.service.ITdataHtEqService;
import com.ruoyi.display.domain.Electricity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 房间用电量Service业务层处理
 *
 * @author ruoyi
 * @date 2024-06-05
 */
@Service
public class TdataHtEqServiceImpl implements ITdataHtEqService {
    @Autowired
    private TdataHtEqMapper tdataHtEqMapper;

    /**
     * 查询房间用电量
     *
     * @param id 房间用电量主键
     * @return 房间用电量
     */
    @Override
    public TdataHtEq selectTdataHtEqById(String id) {
        return tdataHtEqMapper.selectTdataHtEqById(id);
    }

    /**
     * 查询房间用电量列表
     *
     * @param tdataHtEq 房间用电量
     * @return 房间用电量
     */
    @Override
    public List<TdataHtEq> selectTdataHtEqList(TdataHtEq tdataHtEq) {
        return tdataHtEqMapper.selectTdataHtEqList(tdataHtEq);
    }

    @Override
    public List<TdataHtEq> getStatistics(TdataHtEq tdataHtEq) {
        if (tdataHtEq.getDtList() != null) {
            if (tdataHtEq.getRange() != null && tdataHtEq.getRange().equals("1")) {
                String str = tdataHtEq.getDtList().get(1);
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                Date date = null;
                try {
                    date = simpleDateFormat.parse(str);
                } catch (ParseException e) {
                    throw new RuntimeException(e);
                }
                String dateFormatStr = simpleDateFormat.format(new Date(date.getTime() + 24 * 60 * 60 * 1000));
                tdataHtEq.getDtList().set(1, dateFormatStr);
            } else {
                ArrayList<String> dates = new ArrayList<>();
                dates.add(tdataHtEq.getDtList().get(0).substring(0, 7) + "-01");
                Integer yyyy = Integer.valueOf(tdataHtEq.getDtList().get(1).substring(0, 4));
                String mm = String.valueOf(Integer.valueOf(tdataHtEq.getDtList().get(1).substring(5, 7)) + 1);
                if (Integer.valueOf(mm) > 12) {
                    mm = "1";
                    yyyy = yyyy + 1;
                }
                if (Integer.valueOf(mm) < 10) {
                    mm = "0" + mm;
                }
                dates.add(yyyy + "-" + mm + "-01");
                tdataHtEq.setDtList(dates);
            }
        }
        return tdataHtEqMapper.getStatistics(tdataHtEq);
    }

    @Override
    public List<TdataHtEq> selectHteqList(TdataHtEq tdataHtEq) {
        return tdataHtEqMapper.selectHtEqList(tdataHtEq);
    }

    @Override
    public void updateByRoomIdSelective(TdataHtEq tdataHtEq) {
        tdataHtEqMapper.updateByRoomIdSelective(tdataHtEq);
    }

    @Override
    public void refresh(List<TdataHtEq> records) {
        if (!records.isEmpty()) {
            tdataHtEqMapper.refresh(records);
        }
    }

    @Override
    public void insertSelective(TdataHtEq record) {
        tdataHtEqMapper.insertSelective(record);
    }

    @Override
    public void deleteByRoomIds(List<String> roomIds) {
        tdataHtEqMapper.deleteByRoomIds(roomIds);
    }

    @Override
    public List<Electricity> electricity(String date) {
        return tdataHtEqMapper.electricity(date);
    }
}
